An Empirical Study Evaluating Depth of Inheritance on the Maintainability of Object Oriented Software
نویسندگان
چکیده
This empirical research was undertaken as part of a multi method programme of research to investigate unsupported claims made of object oriented technology A series of subject based laboratory experiments including an internal replication tested the e ect of inheritance depth on the maintainability of object oriented software Subjects were timed performing identical maintenance tasks on object oriented software with a hierarchy of three levels of inheritance depth and equivalent object based software with no inheritance This was then replicated with more experienced subjects In a second experiment of similar design sub jects were timed performing identical maintenance tasks on object oriented software with a hierarchy of ve levels of inheritance depth and the equivalent object based software The collected data showed that subjects maintaining object oriented software with three levels of inheritance depth performed the maintenance tasks signi cantly quicker than those maintaining equivalent object based software with no inheritance In contrast subjects maintaining the object oriented software with ve levels of inheritance depth took longer on average than the subjects maintaining the equivalent object based software although statistical signi cance was not obtained Subjects source code solutions and debrie ng questionnaires provided some evidence suggesting subjects began to experience di culties with the deeper inheritance hierarchy It is not at all obvious that object oriented software is going to be more maintainable in the long run These ndings are su ciently important that attempts to verify the results should be made by independent researchers Daly is now with the Fraunhofer Institut IESE Kaiserslautern Germany
منابع مشابه
Evaluating Depth of Inheritance on theMaintainability of Object - Oriented
This empirical research was undertaken as part of a multi-method programme of research to investigate unsupported claims made of object-oriented technology. A series of subject-based laboratory experiments, including an internal replication, tested the eeect of inheritance depth on the maintainability of object-oriented software. Subjects were timed performing identical maintenance tasks on obj...
متن کاملPredicting Maintainability with Object-Oriented Metrics - An Empirical Comparison
A large number of metrics have been proposed for measuring properties of object-oriented software such as size, inheritance, cohesion and coupling. We have been investigating which of these object-oriented metrics can be used as significant predictors for the maintainability of software. For this purpose, we have designed and conducted an empirical study based on historical data collected from ...
متن کاملAssessing Software Maintainability Based on Class Diagram Design : A Preliminary Case Study Yao
Can software maintainability be assessed at the early design stage? For a preliminary answer, we conducted a case study. The study adopts a set of metrics for class diagram measurement, and defines three indices for maintainability assessment from the defect-correction perspectives. The dataset under investigation includes the defect repository and corrective maintenance history of Apache Tomca...
متن کاملAn inheritance complexity metric for object-oriented code: A cognitive approach
Software metrics should be used in order to improve the productivity and quality of software, because they provide critical information about reliability and maintainability of the system. In this paper, we propose a cognitive complexity metric for evaluating design of object-oriented (OO) code. The proposed metric is based on an important feature of the OO systems: Inheritance. It calculates t...
متن کاملMeasurement of Software Maintainability and Reusability in the Object Oriented Paradigm
The Metrics Group of Virginia Tech has been studying the object oriented paradigm and how it relates to software maintainability and software reusability in an attempt to make programmers more productive. Software reuse is the key to increasing productivity within the software development process. By reusing existing software, time and effort are saved in the testing and maintenance phases of a...
متن کامل